﻿<?php

// 封装数据库访问的 Singleton 类
class DB {
	static private $_db;
	// 只初始化一次，之后就直接返回 DBC
	static public function get_instance() {
		if (!self::$_db) {
			$dsn = 'mysql:host='.DB_HOST.
				';dbname='.DB_NAME.';';
			try {
			self::$_db = new PDO($dsn, DB_USR, DB_PWD);
			self::$_db->exec("SET NAMES utf8");
			// 错误以异常形式抛出
			self::$_db->setAttribute(PDO::ATTR_ERRMODE,
					PDO::ERRMODE_EXCEPTION);
			self::$_db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,
					PDO::FETCH_ASSOC);
			} catch (Exception $e) {
				die ("Database error:".$e->getMessage());
			}
		}
		return self::$_db;
	}
}